package com.ruoyi.feedingAreaManagement.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 伦理审查管理对象 ethical_review_management
 * 
 * @author wj
 * @date 2025-08-11
 */
public class EthicalReviewManagement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 伦理审查id */
    private Long ethicalReviewManagementId;

    /** 单据编码 */
    @Excel(name = "单据编码")
    private Long billNo;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approveStatus;

    /** 流程id */
    @Excel(name = "流程id")
    private String procInstId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目来源 */
    @Excel(name = "项目来源")
    private String projectSource;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;

    /** 实验动物操作人 */
    @Excel(name = "实验动物操作人")
    private String experimentalAnimalOperator;

    /** 实验动物品系 */
    @Excel(name = "实验动物品系")
    private String experimentalAnimalStrain;

    /** 数量 */
    @Excel(name = "数量")
    private String quantity;

    /** 规格 */
    @Excel(name = "规格")
    private String specifications;

    /** 使用实验动物的理由 */
    @Excel(name = "使用实验动物的理由")
    private String reasonsForUsingExperimentalAnimals;

    /** 实验动物的操作方案 */
    @Excel(name = "实验动物的操作方案")
    private String experimentalAnimalOperationPlan;

    /** 实验动物的饲养区域 */
    @Excel(name = "实验动物的饲养区域")
    private String feedingAreaForExperimentalAnimals;

    /** 实验动物的保护措施 */
    @Excel(name = "实验动物的保护措施")
    private String protectiveMeasuresForExperimentalAnimals;

    /** 实施的开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施的开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTimeOfImplementation;

    /** 实施的终止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施的终止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTimeOfImplementation;

    /** 部门状态（0正常 1停用） */
    @Excel(name = "部门状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setEthicalReviewManagementId(Long ethicalReviewManagementId) 
    {
        this.ethicalReviewManagementId = ethicalReviewManagementId;
    }

    public Long getEthicalReviewManagementId() 
    {
        return ethicalReviewManagementId;
    }

    public void setBillNo(Long billNo) 
    {
        this.billNo = billNo;
    }

    public Long getBillNo() 
    {
        return billNo;
    }

    public void setApproveStatus(String approveStatus) 
    {
        this.approveStatus = approveStatus;
    }

    public String getApproveStatus() 
    {
        return approveStatus;
    }

    public void setProcInstId(String procInstId) 
    {
        this.procInstId = procInstId;
    }

    public String getProcInstId() 
    {
        return procInstId;
    }

    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }

    public void setProjectSource(String projectSource) 
    {
        this.projectSource = projectSource;
    }

    public String getProjectSource() 
    {
        return projectSource;
    }

    public void setProjectLeader(String projectLeader) 
    {
        this.projectLeader = projectLeader;
    }

    public String getProjectLeader() 
    {
        return projectLeader;
    }

    public void setExperimentalAnimalOperator(String experimentalAnimalOperator) 
    {
        this.experimentalAnimalOperator = experimentalAnimalOperator;
    }

    public String getExperimentalAnimalOperator() 
    {
        return experimentalAnimalOperator;
    }

    public void setExperimentalAnimalStrain(String experimentalAnimalStrain) 
    {
        this.experimentalAnimalStrain = experimentalAnimalStrain;
    }

    public String getExperimentalAnimalStrain() 
    {
        return experimentalAnimalStrain;
    }

    public void setQuantity(String quantity) 
    {
        this.quantity = quantity;
    }

    public String getQuantity() 
    {
        return quantity;
    }

    public void setSpecifications(String specifications) 
    {
        this.specifications = specifications;
    }

    public String getSpecifications() 
    {
        return specifications;
    }

    public void setReasonsForUsingExperimentalAnimals(String reasonsForUsingExperimentalAnimals) 
    {
        this.reasonsForUsingExperimentalAnimals = reasonsForUsingExperimentalAnimals;
    }

    public String getReasonsForUsingExperimentalAnimals() 
    {
        return reasonsForUsingExperimentalAnimals;
    }

    public void setExperimentalAnimalOperationPlan(String experimentalAnimalOperationPlan) 
    {
        this.experimentalAnimalOperationPlan = experimentalAnimalOperationPlan;
    }

    public String getExperimentalAnimalOperationPlan() 
    {
        return experimentalAnimalOperationPlan;
    }

    public void setFeedingAreaForExperimentalAnimals(String feedingAreaForExperimentalAnimals) 
    {
        this.feedingAreaForExperimentalAnimals = feedingAreaForExperimentalAnimals;
    }

    public String getFeedingAreaForExperimentalAnimals() 
    {
        return feedingAreaForExperimentalAnimals;
    }

    public void setProtectiveMeasuresForExperimentalAnimals(String protectiveMeasuresForExperimentalAnimals) 
    {
        this.protectiveMeasuresForExperimentalAnimals = protectiveMeasuresForExperimentalAnimals;
    }

    public String getProtectiveMeasuresForExperimentalAnimals() 
    {
        return protectiveMeasuresForExperimentalAnimals;
    }

    public void setStartTimeOfImplementation(Date startTimeOfImplementation) 
    {
        this.startTimeOfImplementation = startTimeOfImplementation;
    }

    public Date getStartTimeOfImplementation() 
    {
        return startTimeOfImplementation;
    }

    public void setEndTimeOfImplementation(Date endTimeOfImplementation) 
    {
        this.endTimeOfImplementation = endTimeOfImplementation;
    }

    public Date getEndTimeOfImplementation() 
    {
        return endTimeOfImplementation;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("ethicalReviewManagementId", getEthicalReviewManagementId())
            .append("billNo", getBillNo())
            .append("approveStatus", getApproveStatus())
            .append("procInstId", getProcInstId())
            .append("projectName", getProjectName())
            .append("projectSource", getProjectSource())
            .append("projectLeader", getProjectLeader())
            .append("experimentalAnimalOperator", getExperimentalAnimalOperator())
            .append("experimentalAnimalStrain", getExperimentalAnimalStrain())
            .append("quantity", getQuantity())
            .append("specifications", getSpecifications())
            .append("reasonsForUsingExperimentalAnimals", getReasonsForUsingExperimentalAnimals())
            .append("experimentalAnimalOperationPlan", getExperimentalAnimalOperationPlan())
            .append("feedingAreaForExperimentalAnimals", getFeedingAreaForExperimentalAnimals())
            .append("protectiveMeasuresForExperimentalAnimals", getProtectiveMeasuresForExperimentalAnimals())
            .append("startTimeOfImplementation", getStartTimeOfImplementation())
            .append("endTimeOfImplementation", getEndTimeOfImplementation())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
